﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using Entidades.Sistema.Distribucion;
using Mapping.Sistema.Distribucion;

namespace Modelo.Sistema.Distribucion
{
    public class CatalogoDiagramacionDistribucion
    {
        private List<DiagramacionDistribucion> Col_DiagramacionDistribucion;

        public CatalogoDiagramacionDistribucion()
        {
            List<DiagramacionDistribucion> diagramacionesdistribucion = (List<DiagramacionDistribucion>)HttpContext.Current.Cache["Col_DiagramacionDistribucion"];
            if (diagramacionesdistribucion == null)
            {
                diagramacionesdistribucion = MappingDiagramacionDistribucion.ConsultarDiagramacionDistribucion();
                HttpContext.Current.Cache["Col_DiagramacionDistribucion"] = diagramacionesdistribucion;
            }
            Col_DiagramacionDistribucion = diagramacionesdistribucion;            
        }

        public List<DiagramacionDistribucion> ListarDiagramacionDistribucion()
        {
            return Col_DiagramacionDistribucion;
        }
        public DiagramacionDistribucion BuscarDiagramacionDistribucion(int idDiagramacionDistribucion)
        {
            return this.Col_DiagramacionDistribucion.Find(x => x.IdDiagramacionDistribucion == idDiagramacionDistribucion);
        }

        public void SetConfirmada(DiagramacionDistribucion oDiagramacionDistribucion)
        {
            MappingDiagramacionDistribucion.CambiaEstado(oDiagramacionDistribucion);
        }

        public int AgregarDiagramacionDistribucion(DiagramacionDistribucion oDiagramacionDistribucion)
        {
            Col_DiagramacionDistribucion.Add(oDiagramacionDistribucion);
            MappingDiagramacionDistribucion.AgregarDiagramacionDistribucion(oDiagramacionDistribucion);
            HttpContext.Current.Cache["Col_DiagramacionDistribucion"] = Col_DiagramacionDistribucion;
            return oDiagramacionDistribucion.IdDiagramacionDistribucion;
        }

        public void ModificarDiagramacionDistribucion(DiagramacionDistribucion oDiagramacionDistribucion)
        {
            MappingDiagramacionDistribucion.ModificarDiagramacionDistribucion(oDiagramacionDistribucion);
            Col_DiagramacionDistribucion.RemoveAll(x => x.IdDiagramacionDistribucion == oDiagramacionDistribucion.IdDiagramacionDistribucion);
            Col_DiagramacionDistribucion.Add(oDiagramacionDistribucion);
            HttpContext.Current.Cache["Col_DiagramacionDistribucion"] = Col_DiagramacionDistribucion;
        }

        public int EliminarDiagramacionDistribucion(DiagramacionDistribucion oDiagramacionDistribucion)
        {
            MappingDiagramacionDistribucion.EliminarDiagramacionDistribucion(oDiagramacionDistribucion);
            Col_DiagramacionDistribucion.Remove(oDiagramacionDistribucion);
            HttpContext.Current.Cache["Col_DiagramacionDistribucion"] = Col_DiagramacionDistribucion;
            return oDiagramacionDistribucion.IdDiagramacionDistribucion;
        }

    }
}
